Included

under

Comenzamos encendiendo la máquina y haciendo un escaneo rápido y sigiloso para enumerar puertos abiertos con nmap:

sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.129.95.185 -oG allPorts

Enumeración

under

Como solo está el puerto 80 abierto vamos a lanzarle un escaneo exhaustivo para identificar la version y el servicio que corren para este puerto.

under

Y vemos que nos lleva a ?file=home.php lo cual es algo raro, veamos con whatweb lo que nos reporta:

under

Vemos que es un redirect a una web Titan Gears:

under

Explotación

Es algo sencillo intuir que la variable file es vulnerable un Directory Path Trasversal, así que tratamos de leer el /etc/passwd:

under

Efectivamente podemos ver su contenido, si revisamos el código fuente de la página tenemos que el siguiente código php no está sanitizado.

if ($_GET['file']) {
include($_GET['file']);
} else {
header("Location: http://$_SERVER[HTTP_HOST]/index.php?file=home.php");
}

No seria un código sanitizado y nos permitió un LFI

¿Qué es un LFI?

Local file inclusion (also known as LFI) is the process of including files, that are already locally present on the server, through the exploitation of vulnerable inclusion procedures implemented in an application.

Lo sabemos porque pudimos cargar el /etc/passwd que es un LFI

if ($_GET['file']) {
include( __DIR__ . $_GET['file']);
} else {
header("Location: http://$_SERVER[HTTP_HOST]/index.php?file=home.php");
}

Aquí solo carga localmente dentro de /var/www/html

El LFI nos dice que hay

tftp:x:110:113:tftp daemon,,,:/var/lib/tftpboot:/usr/sbin/nologin

¿Qué es TFTP?

Buscando en Google encontramos que tftp significa Trivial File Transfer Protocol (TFTP) y es un protocolo que provee de un servicio básico de transferencia de archivos que no requiere de autenticación por parte del usuario. Usado como alternativa para aplicaciones que no requieren sofisticadas interacciones dadas por FTP.

Este servicio opera por UDP

nmap -p- --open -T5 -v -n -sU 10.129.95.185 
under

Para poder usar TFTP usaremos la herramienta tftp-hpa

under

Nos conectamos y podemos ver los comandos:

under

Y vemos PUT, entonces esto nos permite subir archivos, por ejemplo subir un reverse shell en php:

❯ tftp 10.129.95.185
tftp> put li.php
under

Nos ponemos en escucha con ncat y obtenemos la shell:

under

Somos www-data y si tratamos de listar la user.txt no podremos por falta de permisos.

under

Tendremos que hacer User Pivoting, devolviendonos al directorio de la web si listamos los archivos ocultos encontramos un .htaccess y un .htpasswd

under

Y esto nos ha revelado las credenciales del usuario mike:

under

Siendo mike abremos completado la intrusion.

Escalada

Enumerando un poco la máquina vemos que estamos en el grupo LXD, y si hacemos una rápida búsqueda en searchsploit encontraremos la herramienta desarrollada por S4vitar:

under

La podemos descargar y necesitaremos entonces una imagen de alpine para poder ejecutar el exploit que conseguiremos con wget y buscando en internet.

wget https://raw.githubusercontent.com/saghul/lxd-alpine-builder/master/build-alpine
under

Dentro del directorio /tmp tendremos todo lo necesario para ejecutar la escalada:

under

Ejecutamos el script y le pasamos la imagen de alpine:

under

Ahora si nos vamos al directorio /mnt tendremos el sistema de archivos de la máquina montada en nuestro contenedor, y en el contenedor nosotros somo root entonces habremos completado la máquina.

under
under